/**********************************************************************
 *** 名称 ：GameSystem.h
 *** 描述 ：定义一个GameSystem名空间。华容道小程序的系统运行环境初始化、注销及一
 ***     些运行参数设定。
 **********************************************************************/
#ifndef _GAMESYSTEM_H_
#define _GAMESYSTEM_H_

#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>
#include <SDL/SDL_ttf.h>
#include <iostream>
#include <iconv.h>

#define USING_UTF8

namespace GameSystem{
    /* 主窗体 */
	const int WINDOW_WIDTH  = 413;        // 程序运行主窗体宽度
	const int WINDOW_HEIGHT = 564;        // 程序运行主窗体高度
	/* 游戏区域边界 */
	const int FIELD_LEFT    = 77;         // 左边界起始位置
	const int FIELD_RIGHT   = 334;        // 右边界起始位置
	const int FIELD_TOP     = 136;        // 上边界起始位置
	const int FIELD_BOTTOM  = 458;        // 下边界起始位置
	/* 跳关按钮位置 */
	const int JUMP_TOP      = 67;         // 跳关按钮上边界
	const int JUMP_BOTTOM   = 97;         // 跳关按钮下边界
	const int JUMP_BACK_L   = 104;        // 上一关按钮左边界
	const int JUMP_BACK_R   = 131;        // 上一关按钮右边界
	const int JUMP_FOREWORD_L = 282;      // 下一关按钮左边界
	const int JUMP_FOREWORD_R = 308;      // 下一关按钮右边界
	/* 重置按钮和声音按钮 */
	const int RESET_SOUND_TOP = 486;      // 重置按钮和声音按钮上边界
	const int RESET_SOUND_BOTTOM = 510;   // 重置按钮和声音按钮下边界
	const int RESET_L = 320;              // 重置按钮左边界
	const int RESET_R = 345;              // 重置按钮右边界
	const int SOUND_L = 355;              // 声音按钮左边界
	const int SOUND_R = 380;              // 声音按钮右边界
	/* 帮助按钮 */
	const int HELP_TOP    = 60;           // 上边界
	const int HELP_BOTTOM = 85;           // 下边界
	const int HELP_LEFT   = 370;          // 左边界
	const int HELP_RIGHT  = 395;          // 右边界

	const int UNIT_WIDTH    = 64;         // 角色移动最小像素单元

    const int ROLE_CARD_X   = 0;          // 角色卡片种类之横卡。程序中提供两种角色卡片，横卡和竖卡，玩一下会更清楚
	const int ROLE_CARD_Y   = 1;          // 角色卡片种类之竖卡

	extern void initSystem();             // 初始化运行环境
	extern void systemQuit();             // 退出时注销环境
	extern char *localToUTF8(std::string src);  // 中文环境的设置，如果地图文件和源文件不是以UTF8编码，而是以windows 986编码请务必使用此函数转换！
	extern char *localToUTF8(char *src);  //重载字符转换函数
}

#endif
